package meta.entidad.comun.configuracion.basica;

import adalid.core.*;
import adalid.core.annotations.*;
import adalid.core.enums.*;
import adalid.core.interfaces.*;
import adalid.core.properties.*;
import java.lang.reflect.Field;
import meta.proyecto.base.ProyectoBase;

/**
 * @author Jorge Campins
 */
@EntityClass(independent = Kleenean.TRUE, resourceType = ResourceType.CONFIGURATION, resourceGender = ResourceGender.MASCULINE)
@EntitySelectOperation(enabled = Kleenean.TRUE, access = OperationAccess.PUBLIC, rowsLimit = 0)
@EntityInsertOperation(enabled = Kleenean.FALSE)
@EntityUpdateOperation(enabled = Kleenean.FALSE)
@EntityDeleteOperation(enabled = Kleenean.FALSE)
@EntityTableView(enabled = Kleenean.FALSE)
@EntityDetailView(enabled = Kleenean.FALSE)
@EntityTreeView(enabled = Kleenean.FALSE)
@EntityConsoleView(enabled = Kleenean.FALSE)
public class TipoParametroDom extends AbstractPersistentEnumerationEntity {

    // <editor-fold defaultstate="collapsed" desc="class constructors">
    @Deprecated
    private TipoParametroDom() {
        this(null, null);
    }

    public TipoParametroDom(Artifact declaringArtifact, Field declaringField) {
        super(declaringArtifact, declaringField);
    }
    // </editor-fold>

    @PrimaryKey
    public IntegerProperty numeroTipoParametroDom;

    @BusinessKey
    public StringProperty codigoTipoParametroDom;

//  @UniqueKey
    @StringField(maxLength = 30)
    public StringProperty codigoPropiedadInterfaz;

//  @UniqueKey
    @StringField(maxLength = 100)
    public StringProperty nombreInterfaz;

//  @ColumnField(nullable = Kleenean.FALSE)
    @StringField(maxLength = 30)
    public StringProperty etiquetaParametro;

    public Instance ID;

    public Instance VERSION;

    public Instance CODIGO;

    public Instance NOMBRE;

    public Instance PROPIETARIO;

    public Instance SEGMENTO;

    public Instance SUPERIOR;

    public Instance INACTIVO;

    public Instance NUMERO;

    public Instance CLAVE;

    @Override
    protected void settleAttributes() {
        super.settleAttributes();
        setSchema(ProyectoBase.getEsquemaEntidadesComunes());
        setDefaultLabel("tipo de parámetro de dominio");
        setDefaultShortLabel("tipo de parámetro");
        setDefaultCollectionLabel("tipos de parámetro de dominio");
        setDefaultCollectionShortLabel("tipos de parámetro");
    }

    @Override
    protected void settleInstances() {
        super.settleInstances();
        ID.newInstanceField(numeroTipoParametroDom, 1);
        ID.newInstanceField(codigoTipoParametroDom, "id");
        ID.newInstanceField(codigoPropiedadInterfaz, "identificacion_recurso");
        ID.newInstanceField(nombreInterfaz, "RecursoIdentificable");
        ID.newInstanceField(etiquetaParametro, "Identificación");
        VERSION.newInstanceField(numeroTipoParametroDom, 2);
        VERSION.newInstanceField(codigoTipoParametroDom, "version");
        VERSION.newInstanceField(codigoPropiedadInterfaz, "version_recurso");
        VERSION.newInstanceField(nombreInterfaz, "RecursoVersionable");
        VERSION.newInstanceField(etiquetaParametro, "Versión");
        CODIGO.newInstanceField(numeroTipoParametroDom, 3);
        CODIGO.newInstanceField(codigoTipoParametroDom, "codigo");
        CODIGO.newInstanceField(codigoPropiedadInterfaz, "codigo_recurso");
        CODIGO.newInstanceField(nombreInterfaz, "RecursoCodificable");
        CODIGO.newInstanceField(etiquetaParametro, "Código");
        NOMBRE.newInstanceField(numeroTipoParametroDom, 4);
        NOMBRE.newInstanceField(codigoTipoParametroDom, "nombre");
        NOMBRE.newInstanceField(codigoPropiedadInterfaz, "nombre_recurso");
        NOMBRE.newInstanceField(nombreInterfaz, "RecursoNombrable");
        NOMBRE.newInstanceField(etiquetaParametro, "Nombre");
        PROPIETARIO.newInstanceField(numeroTipoParametroDom, 5);
        PROPIETARIO.newInstanceField(codigoTipoParametroDom, "propietario");
        PROPIETARIO.newInstanceField(codigoPropiedadInterfaz, "propietario_recurso");
        PROPIETARIO.newInstanceField(nombreInterfaz, "RecursoPersonalizable");
        PROPIETARIO.newInstanceField(etiquetaParametro, "Propietario");
        SEGMENTO.newInstanceField(numeroTipoParametroDom, 6);
        SEGMENTO.newInstanceField(codigoTipoParametroDom, "segmento");
        SEGMENTO.newInstanceField(codigoPropiedadInterfaz, "segmento_recurso");
        SEGMENTO.newInstanceField(nombreInterfaz, "RecursoSegmentable");
        SEGMENTO.newInstanceField(etiquetaParametro, "Segmento");
        SUPERIOR.newInstanceField(numeroTipoParametroDom, 7);
        SUPERIOR.newInstanceField(codigoTipoParametroDom, "superior");
        SUPERIOR.newInstanceField(codigoPropiedadInterfaz, "recurso_superior");
        SUPERIOR.newInstanceField(nombreInterfaz, "RecursoJerarquizable");
        SUPERIOR.newInstanceField(etiquetaParametro, "Superior");
        INACTIVO.newInstanceField(numeroTipoParametroDom, 8);
        INACTIVO.newInstanceField(codigoTipoParametroDom, "inactivo");
        INACTIVO.newInstanceField(codigoPropiedadInterfaz, "es_recurso_inactivo");
        INACTIVO.newInstanceField(nombreInterfaz, "RecursoDesactivable");
        INACTIVO.newInstanceField(etiquetaParametro, "Inactivo");
        NUMERO.newInstanceField(numeroTipoParametroDom, 9);
        NUMERO.newInstanceField(codigoTipoParametroDom, "numero");
        NUMERO.newInstanceField(codigoPropiedadInterfaz, "numero_recurso");
        NUMERO.newInstanceField(nombreInterfaz, "RecursoEnumerable");
        NUMERO.newInstanceField(etiquetaParametro, "Número");
        CLAVE.newInstanceField(numeroTipoParametroDom, 10);
        CLAVE.newInstanceField(codigoTipoParametroDom, "clave");
        CLAVE.newInstanceField(etiquetaParametro, "Clave");
    }

}
